idea

您所在的位置:网站首页 idea插件开发 ui idea

idea

2024-07-13 12:51| 来源: 网络整理| 查看: 265

文章目录 前言一、DialogWrapper二、使用 DialogWrapper1. 简单小案例1.1 定义dialog1.2 使用dialog 2. 默认 dialog2.1 com.intellij.openapi.ui.Messages 总结

前言 Dialogs (对话框), 在图形用户界面中,对话框(又称对话方块[1])是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为“对话框”是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的输入,或者两者皆有。

在这里插入图片描述

一、DialogWrapper

DialogWrapper是一个基类,应该用于IntelliJ平台中显示的所有模式对话框(以及一些非模式对话框)。

它提供以下功能:

按钮布局(确定/取消按钮的平台特定顺序,macOS特定的帮助按钮)非模式验证(当输入到对话框的数据无效时显示错误消息文本)快捷键支持 (esc (退出), Left/Right(按钮切换), Y/N (如果对话框中存在是/否操作,则为Y/N))可选“不再询问”复选框

DialogWrapper类通常与GUI设计器窗体一起使用。在本例中,将GUI设计器窗体绑定到类扩展DialogWrapper,将窗体的顶层面板绑定到一个字段,然后从createCenterPanel()方法返回该字段。

要显示对话框,请调用show()方法,然后使用getExitCode()方法检查对话框是如何关闭的。showAndGet()方法可用于组合这两个调用。

扩展功能

要自定义对话框中显示的按钮(替换标准的“确定”/“取消”/“帮助”按钮),需要重写createActions()或createLeftActions()方法。这两个方法都返回一个Swing动作对象数组。如果某个按钮关闭了对话框,请使用DialogWrapperExitAction作为操作的基类。使用动作.putValue(DialogWrapper.DEFAULT_ACTION,true)设置默认按钮。要验证输入到对话框中的数据,请重写doValidate()方法。计时器将自动调用该方法。如果当前输入的数据有效,则返回null。否则,返回封装错误消息的ValidationInfo对象和与无效数据关联的可选组件。当指定一个组件时,一个错误图标将显示在它旁边,当用户试图调用OK操作时,它将被聚焦。 二、使用 DialogWrapper 1. 简单小案例

代码如下(示例):

1.1 定义dialog public class SampleDialogWrapper extends DialogWrapper { public SampleDialogWrapper() { super(true); // use current window as parent init(); setTitle("Test DialogWrapper"); } /** * 自定义提示组件 * * @return JComponent */ @Nullable @Override protected JComponent createCenterPanel() { JPanel dialogPanel = new JPanel(new BorderLayout()); JLabel label = new JLabel("testing"); label.setPreferredSize(new Dimension(100, 100)); dialogPanel.add(label, BorderLayout.CENTER); return dialogPanel; } } 1.2 使用dialog if (new SampleDialogWrapper().showAndGet()) { // user pressed OK } 2. 默认 dialog

也可以使用idea默认的dialog,简单方便,主要是不用自己写!只要不是自己写的就怎么都是香的 ~ . ~

2.1 com.intellij.openapi.ui.Messages

这是 JetBrains 提供的工具类,官方介绍如下 Provides several default notification dialogs (“OK|Cancel”) as well as simple input dialogs.(提供几个默认的通知对话框(“确定|取消”)以及简单的输入对话框。)

下面是这个类一些简单的方法 — 看看方法名就大概知道啥功能 在这里插入图片描述

代码如下(示例):

类似文本域输入框

// 方法参数如下 public static @NlsSafe String showMultilineInputDialog(Project project, @DialogMessage String message, @DialogTitle String title, @Nullable @NonNls String initialValue, @Nullable Icon icon, @Nullable InputValidator validator) // 调用方法如下 // userInput String strMysqlColumns = Messages.showMultilineInputDialog(project, "Enter the column you need to add salt", "xyang", "example:\n" + "\t user_id,\n " + "\t user_name", Messages.getInformationIcon(), null);

实际效果 在这里插入图片描述

可能有小伙伴可能会疑惑,Project 这个参数…不明白的建议看看我前俩篇文章

idea 自定义插件 工具面板IDEA-插件开发 入门篇

单行输入框

// 方法如下 public static @NlsSafe String showInputDialog(@Nullable Project project, @DialogMessage String message, @DialogTitle String title, @Nullable Icon icon) // 调用逻辑如下 String prefix = Messages.showInputDialog(project, "Enter the prefix you need to add", "xyang", Messages.getInformationIcon());

实际效果如下 在这里插入图片描述

总结

还有很多各种各样的 dialogs,这里就不一一演示了,很多方法看方法名都大概能知道意思



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3